package tech.aistar.day09.generics;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 本类用来演示:
 *
 * @author: success
 * @date: 2022/7/29 2:38 下午
 */
public class SuperExtendsDemo {
    public static void main(String[] args) {
        List<Integer> intList = new ArrayList<>();
        intList.add(10);
        intList.add(20);
        intList.add(30);

        List<Long> longList = new ArrayList<>();
        longList.add(100L);
        longList.add(200L);
        longList.add(300L);

        //泛型是没有多态的
        //Number n = new Integer(10);//ok
        //List<Number> list = new ArrayList<Integer>();//error

        //需求 - 提供一个方法 - 同时支持打印上述的集合
        printList(intList);

        printList(longList);
    }

    private static void printList(List<? extends Number> intList) {
        Iterator<? extends Number> iterator = intList.iterator();
        while(iterator.hasNext()){
            Number n = iterator.next();
            System.out.println(n);
        }
    }


}
